package prototype.tools.init;

import prototype.constant.ELanguage;
import prototype.constant.EMessageConst;
import prototype.data.Dictionary;
import prototype.model.DictionaryModel;

import javax.persistence.EntityManager;
import java.util.ArrayList;
import java.util.List;

/**
 * Инициализация словаря
 */
public class InitDictionary {
	public static void main(String args[]) {
		final EntityManager em = InitUtils.getEntityManager();
		em.getTransaction().begin();
		final List<Dictionary> list = new ArrayList<Dictionary>();
		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.ERROR, "Ошибка: "));
		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.ERROR_ACCESS, "У вас нет прав на выполнение операции"));
		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.ERROR_NETWORK, "Cоединение с сервером отсутствует попробуйте позже"));

		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.MISSING_OBJECT_ID, "Отсутствует идентификатор объекта"));
		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.OBJECT_NOT_UNIQUE, "Обект должен быть уникален"));

		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.MISSING_DICTIONARY_LANGUAGE, "Отсутствует язык"));
		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.MISSING_DICTIONARY_CODE, "Отсутствует код"));
		list.add(new Dictionary(null, ELanguage.RU, EMessageConst.MISSING_DICTIONARY_TEXT, "Отсутствует текст сообщения"));

		for (final Dictionary item : list) {
			Dictionary oldItem = DictionaryModel.select(em, item.getLanguage(), item.getCode());
			if (oldItem == null) {
				em.persist(item);
			} else {
				if (!oldItem.getText().equals(item.getText())) {
					oldItem.setText(item.getText());
					em.merge(oldItem);
				}
			}
		}

		em.getTransaction().commit();
		em.close();
	}
}
